package leetcode每日一题;


import java.util.ArrayList;
import java.util.List;

/**
 * 1. 问题描述
 *     实现杨辉三角
 *
 * 2. 算法分析
 *     1
 *     1  1
 *     1  2  1
 *     1  3  3  1
 *     1  4  6  4  1
 *     1  5  10 10 5  1
 *
 * 3. 代码实现
 *
 */
@SuppressWarnings("all")
public class 杨辉三角 {
    public static void main(String[] args) {

    }

    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans = new ArrayList<>();
        for(int i = 0; i < numRows; i++) { // 求出第i行list
            if(i == 0) {
                List<Integer> temp = new ArrayList<>(); temp.add(1); ans.add(temp);
            } else if(i == 1) {
                List<Integer> temp = new ArrayList<>(); temp.add(1); temp.add(1); ans.add(temp);
            } else {
                List<Integer> temp = new ArrayList<>();
                for(int j = 0; j <= i; j++) {
                    if(j == 0 || j == i) {
                        temp.add(1); // 每行首尾元素
                    } else {
                        temp.add(ans.get(i-1).get(j-1)+ans.get(i-1).get(j));
                    }
                }
                ans.add(temp);
            }
        }
        return ans;
    }
}
